import logging
import os
from datetime import datetime

def setup_logger_manager():
    """
    设置日志记录器，日志文件存储在 log 目录下。
    检查当天日志文件是否存在，包括 20250421_log 和 20250421_err 两个文件。
    """
    # 获取当前日期
    today = datetime.now().strftime('%Y%m%d')

    # 定义日志文件路径
    log_dir = 'log'
    os.makedirs(log_dir, exist_ok=True)
    log_file = os.path.join(log_dir, f"{today}_log.log")
    err_file = os.path.join(log_dir, f"{today}_err.log")

    # 检查日志文件是否存在
    if not os.path.exists(log_file):
        open(log_file, 'w', encoding='utf-8').close()
    if not os.path.exists(err_file):
        open(err_file, 'w', encoding='utf-8').close()

    # 设置日志格式
    log_format = logging.Formatter('%(asctime)s-%(message)s')

    # 设置日志记录器
    logger_manager = logging.getLogger('logger_manager')
    logger_manager.setLevel(logging.INFO)

    # 文件日志处理器
    file_handler = logging.FileHandler(log_file, encoding='utf-8')
    file_handler.setLevel(logging.INFO)
    file_handler.setFormatter(log_format)
    logger_manager.addHandler(file_handler)

    # 错误日志处理器
    err_handler = logging.FileHandler(err_file, encoding='utf-8')
    err_handler.setLevel(logging.ERROR)
    err_handler.setFormatter(log_format)
    logger_manager.addHandler(err_handler)

    # 控制台日志处理器
    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.INFO)
    console_handler.setFormatter(log_format)
    logger_manager.addHandler(console_handler)

    return logger_manager

# 初始化日志记录器
logger_manager = setup_logger_manager()

def log(message: str):
    """
    写入普通日志文件
    Args:
        message (str): 要记录的日志信息
    """
    logger_manager.info(f"{message}")

def err(message: str):
    """
    写入错误日志文件
    Args:
        message (str): 要记录的错误信息
    """
    logger_manager.error(f"{message}")